///*******************************************************************************
// * Copyright (c) 2006, 2007 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// * IBM Corporation - initial API and implementation
// *******************************************************************************/
//
//package org.eclipse.ui.tests.dialogs;
//
//import java.io.StringWriter;
//
//import org.eclipse.core.resources.IFile;
//import org.eclipse.core.resources.IFolder;
//import org.eclipse.core.resources.IProject;
//import org.eclipse.core.resources.IResource;
//import org.eclipse.core.resources.IWorkspaceRoot;
//import org.eclipse.core.resources.ResourcesPlugin;
//import org.eclipse.core.runtime.CoreException;
//import org.eclipse.jface.dialogs.IDialogSettings;
//import org.eclipse.ui.IMemento;
//import org.eclipse.ui.XMLMemento;
//import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
//import org.eclipse.ui.internal.ide.model.ResourceFactory;
//
//import junit.framework.TestCase;
//
///**
// * @since 3.3
// *
// */
//public class UIAbstractFilteredResourcesSelectionDialog extends TestCase {
//
// // -----------------------
// // implementation dependent !
//
// private static final String HISTORY_SETTINGS = "History";
//
// private static final String DEFAULT_ROOT_NODE_NAME = "historyRootNode"; //$NON-NLS-1$
//
// private static final String DEFAULT_INFO_NODE_NAME = "infoNode";
//
// private static final String DIALOG_SETTINGS = "org.eclipse.ui.dialogs.FilteredResourcesSelectionDialog"; //$NON-NLS-1$
//
// // -----------------------
//
// private static final String PROJECT_NAME = "FilteredResourcesTestProject";
//
// private static final String FOLDER_NAME1 = "testFolder1";
//
// private static final String FOLDER_NAME2 = "testFolder2";
//
// private static final String[] HISTORY_FILES = new String[] { "file1H.txt",
// "file2H.avi", "_FiLe4H.java", "afile4H.txt", "bfile5H.txt",
// "cfile6H.txt" };
//
// private static final String[] NONHISTORY_FILES = new String[] {
// "file1.txt", "file2.avi", "_FiLe4.java", "afile4.txt",
// "bfile5.txt", "cfile6.txt" };
//
// // -----------------------
//
// protected IResource[] historyResources;
//
// protected IResource[] nonHistoryResources;
//
// protected IProject project;
//
// /**
// * A hook for subclasses - provides means to change filesystem tree.
// *
// * @return
// */
// protected String getProjectName() {
// return PROJECT_NAME;
// }
//
// /**
// * A hook for subclasses - provides means to change filesystem tree.
// *
// * @return
// */
// protected String getFirstFolderName() {
// return FOLDER_NAME1;
// }
//
// /**
// * A hook for subclasses - provides means to change filesystem tree.
// *
// * @return
// */
// protected String getSecondFolderName() {
// return FOLDER_NAME2;
// }
//
// /**
// * A hook for subclasses - provides means to change filesystem tree.
// *
// * @return
// */
// protected String[] getHistoryFiles() {
// return HISTORY_FILES;
// }
//
// /**
// * A hook for subclasses - provides means to change filesystem tree.
// *
// * @return
// */
// protected String[] getNonHistoryFiles() {
// return NONHISTORY_FILES;
// }
//
// /*
// * (non-Javadoc)
// *
// * @see junit.framework.TestCase#setUp()
// */
// protected void setUp() throws Exception {
// super.setUp();
//
// initializeProject();
//
// // ------------------------
// // IDialogSettings
//
// IDialogSettings settings = IDEWorkbenchPlugin.getDefault()
// .getDialogSettings().getSection(DIALOG_SETTINGS);
//
// if (settings == null) {
// settings = IDEWorkbenchPlugin.getDefault().getDialogSettings()
// .addNewSection(DIALOG_SETTINGS);
// }
//
// // ------------------------
// // XMLMemento
//
// XMLMemento memento = XMLMemento.createWriteRoot(HISTORY_SETTINGS);
//
// IMemento historyMemento = memento.createChild(DEFAULT_ROOT_NODE_NAME);
//
// for (int i = 0; i < historyResources.length; i++) {
// IResource item = historyResources[i];
// IMemento elementMemento = historyMemento
// .createChild(DEFAULT_INFO_NODE_NAME);
// ResourceFactory resourceFactory = new ResourceFactory(item);
// resourceFactory.saveState(elementMemento);
// }
//
// StringWriter writer = new StringWriter();
//
// memento.save(writer);
// settings.put(HISTORY_SETTINGS, writer.getBuffer().toString());
// }
//
// /*
// * (non-Javadoc)
// *
// * @see junit.framework.TestCase#tearDown()
// */
// protected void tearDown() throws Exception {
// super.tearDown();
// finalizeProject();
// }
//
// private void initializeProject() throws Exception {
// IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
// // ensure only the new project is visible
// project = root.getProject(getProjectName());
//
// IProject[] projects = root.getProjects();
// for (int i = 0; i < projects.length; i++) {
// projects[i].delete(true, null);
// }
//
// project.create(null);
// project.open(null);
// IFolder folder1 = project.getFolder(getFirstFolderName());
// IFolder folder2 = project.getFolder(getSecondFolderName());
// folder1.create(false, true, null);
// folder2.create(false, true, null);
// String[] historyFiles = getHistoryFiles();
// if (historyFiles == null || historyFiles.length == 0) {
// historyResources = new IResource[0];
// } else {
// historyResources = new IResource[historyFiles.length];
// for (int i = 0; i < historyFiles.length; i++) {
// IFile file = project.getFile(folder1.getProjectRelativePath()
// .append("/" + historyFiles[i]));
// file.create(null, false, null);
// historyResources[i] = file;
// }
// }
// String[] files = getNonHistoryFiles();
// if (files == null || files.length == 0) {
// nonHistoryResources = new IResource[0];
// } else {
// int length = files.length;
// nonHistoryResources = new IResource[length * 2];
// for (int i = 0; i < length; i++) {
// IFile file = project.getFile(folder1.getProjectRelativePath()
// .append("/" + files[i]));
// file.create(null, false, null);
// nonHistoryResources[i] = file;
// }
// for (int i = 0; i < length; i++) {
// IFile file = project.getFile(folder2.getProjectRelativePath()
// .append("/" + files[i]));
// file.create(null, false, null);
// nonHistoryResources[length + i] = file;
// }
// }
// }
//
// private void finalizeProject() throws CoreException {
// if (project != null) {
// project.delete(true, null);
// }
// }
//
//}